import pandas as pd


def main():
    path = '数据/2022-2023成绩信息.xls'  # 包含所有成绩信息的成绩总库
    data = pd.read_excel(path)  # 原始信息

    filtered_data = data[
        (data['考试性质'] == '正常考试') &  # 从正常考试记录中筛选
        (data['辅修课程'] == '否') &  # 排除辅修成绩
        (data['总成绩'] < 60)  # 总成绩 < 60
        ]

    ID_counts = filtered_data['学号'].value_counts()  # 统计每个学号出现次数
    # 创建一个新的 DataFrame
    ID_counts_df = pd.DataFrame({'学号': ID_counts.index, '挂科门数': ID_counts.values})

    # 使用 merge 函数将姓名和班级信息合并
    merged_data = pd.merge(ID_counts_df, data[['学号', '班级名称', '姓名']], on='学号', how='left').drop_duplicates()

    # 保存Excel文件
    merged_data.to_excel('2022-2023挂科门数统计.xlsx', index=False)  # 结果导出到Excel
    print("文件已生成!")


if __name__ == '__main__':
    main()
